home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / fsw / zm302 / zm302_s.lzh / MPSRC045.LZH / P16_0103.HAS < prev    next >
Text File  |  1996-06-16  |  2KB  |  85 lines

  1. *=======================================================
  2. *
  3. *    16bitPCM 5.2kHz変換
  4. *
  5. *=======================================================
  6.  
  7. PCM16_0103_mac    macro        _vol
  8.  
  9.         move.l        #(MIX_SIZE/3)*4-2,d6
  10.         add.l        a0,d6
  11.         cmp.l        a3,d6
  12.         bcs        @f            * 今回の処理中にはトラップしない
  13.  
  14.         moveq.l        #(MIX_SIZE/3)*2-1-1,d6
  15. 2:        cmpa.l        a3,a0            * トラップアドレス判定
  16.         bcs        1f
  17.         jsr        (a4)            * トラップ!
  18. 1:        move.w        (a0)+,d0        * PCMデータ取り込み
  19.         VOLUME        _vol,d0,d2
  20.         add.w        d0,(a1)+
  21.         add.w        d0,(a1)+
  22.         add.w        d0,(a1)+
  23.         dbra        d6,2b
  24.  
  25. *        ラストの1回
  26.         cmpa.l        a3,a0
  27.         bcs        1f
  28.         jsr        (a4)            * トラップ!
  29. 1:        move.w        (a0)+,d0        * PCMデータ取り込み
  30.         move.w        d0,CH_LAST_PCM(a5)    * 前回変換終了時のPCM値 = d0.w
  31.         VOLUME        _vol,d0,d2
  32.         move.w        d0,CH_LAST_VPCM(a5)    * 最後のPCM値(音量変換後)
  33.         add.w        d0,(a1)+
  34.         add.w        d0,(a1)+
  35.         add.w        d0,(a1)+
  36.  
  37.         move.l        a0,CH_PCM_ADR(a5)    * PCMアドレス = a0.l
  38.  
  39.         rts
  40.  
  41.         * トラップ無し
  42. @@:        moveq.l        #(MIX_SIZE/3)*2-1-1,d6
  43. 2:        move.w        (a0)+,d0        * PCMデータ取り込み
  44.         VOLUME        _vol,d0,d2
  45.         add.w        d0,(a1)+
  46.         add.w        d0,(a1)+
  47.         add.w        d0,(a1)+
  48.         dbra        d6,2b
  49.  
  50. *        ラストの1回
  51.         move.w        (a0)+,d0        * PCMデータ取り込み
  52.         move.w        d0,CH_LAST_PCM(a5)    * 前回変換終了時のPCM値 = d0.w
  53.         VOLUME        _vol,d0,d2
  54.         move.w        d0,CH_LAST_VPCM(a5)    * 最後のPCM値(音量変換後)
  55.         add.w        d0,(a1)+
  56.         add.w        d0,(a1)+
  57.         add.w        d0,(a1)+
  58.  
  59.         move.l        a0,CH_PCM_ADR(a5)    * PCMアドレス = a0.l
  60.  
  61.         rts
  62.  
  63.         endm
  64.  
  65. *=======================================================
  66.  
  67. PCM16_0103_v00:    PCM16_0103_mac    0
  68. PCM16_0103_v01:    PCM16_0103_mac    1
  69. PCM16_0103_v02:    PCM16_0103_mac    2
  70. PCM16_0103_v03:    PCM16_0103_mac    3
  71. PCM16_0103_v04:    PCM16_0103_mac    4
  72. PCM16_0103_v05:    PCM16_0103_mac    5
  73. PCM16_0103_v06:    PCM16_0103_mac    6
  74. PCM16_0103_v07:    PCM16_0103_mac    7
  75. PCM16_0103_v08:    PCM16_0103_mac    8
  76. PCM16_0103_v09:    PCM16_0103_mac    9
  77. PCM16_0103_v10:    PCM16_0103_mac    10
  78. PCM16_0103_v11:    PCM16_0103_mac    11
  79. PCM16_0103_v12:    PCM16_0103_mac    12
  80. PCM16_0103_v13:    PCM16_0103_mac    13
  81. PCM16_0103_v14:    PCM16_0103_mac    14
  82. PCM16_0103_v15:    PCM16_0103_mac    15
  83. PCM16_0103_vnn:    PCM16_0103_mac    'n'
  84. PCM16_0103_non:    PCM16_0103_mac    'x'
  85.